
//
//  VisitorView.swift
//  WBSwift
//
//  Created by 钱学明 on 2017/3/7.
//  Copyright © 2017年 STT. All rights reserved.
//

import UIKit

/*
// swift 中的代理的写法
// 定义一个名字为VisitorViewDelegate 的协议
protocol VisitorViewDelegate:NSObjectProtocol{

    func visitorViewDidclickButtonWithLogin(visitor:VisitorView)
      func visitorViewDidclickButtonWithRegister(visitor:VisitorView)
}
 
*/



class VisitorView: UIView {
    
    
    /*
    @IBAction func loginButtonAction(_ sender: UIButton) {
      
      // 和oc不一样 swift中不用判断代理是否响应
        /*
         swift 中默认 协议中的方法是必须要全部实现的
         */
        
        delegate?.visitorViewDidclickButtonWithLogin(visitor: self)
        
    }
    
    @IBAction func registButAction(_ sender: UIButton) {
        delegate?.visitorViewDidclickButtonWithRegister(visitor: self)
    }
     */
    //登录
    @IBOutlet weak var loginBut: UIButton!
    // 注册
    @IBOutlet weak var registBut: UIButton!
    // 转盘
    @IBOutlet weak var rorationView: UIImageView!
    
    
    @IBOutlet weak var imageIcon: UIImageView!
    // 图片
    @IBOutlet weak var iconMask: UIImageView!
    
// 文本
     @IBOutlet weak var titleLabel: UILabel!
    
    // swift 中的代理属性的设置的方法 而且代理要使用weak 并且设置为可选类型（代理是可以设置的 也是可以不进行设置的）
//    weak var delegate:VisitorViewDelegate?
 /*
     
     func == - 
     class == +
     */
    
    // 类方法
    class func visitorViewLoad() ->VisitorView {
        return Bundle.main.loadNibNamed("VisitorView", owner: nil, options: nil)?.last as! VisitorView
    }
    
    // 设置访客视图上的数据
    func setUpVisitorInfo(imaeName:String? ,title:String)  {
        
        titleLabel.text = title
     
        guard  imaeName != "" else {
            // 是首页 转盘旋转
            startAnimation()
            return
        }
            // 不是首页
        rorationView.isHidden = true
        imageIcon.image = UIImage(named:imaeName!)
        
    }
    //  动画效果
    private func startAnimation(){
    
        // 
        let animation = CABasicAnimation(keyPath:"transform.rotation")
        animation.toValue = 2.0 * M_PI
        animation.duration = 5.0
        
        // 默认情况下只要涂层消失 动画会被自动移除 这个属性涌来维持动画效果
        animation.isRemovedOnCompletion = false
        
        animation.repeatCount = MAXFLOAT
       rorationView.layer.add(animation,forKey: nil)
    }
    
    
    
    
}
